package com.panshi.service;


import com.panshi.domain.*;
import com.panshi.domain.vo.CollectVO;
import com.panshi.domain.vo.PageBean;
import com.panshi.domain.vo.QueryVO;

import java.util.List;

/**
 * <p>
 * 服务类
 * </p>
 *
 * @author zhy
 * @since 2020-07-29
 */
public interface ZxArticleService {

    /**
     * 资讯首页随机查询资讯
     *
     * @return
     */
    List<ArticleVo> articleList();

    /**
     * 咨询推荐，热点，最新查询
     *
     * @param typeVo
     * @return
     */
    List<ArticleVo> articleListCondition(TypeVo typeVo);

    /**
     * 首页（最新创作）和咨询类型（其它看点）查询
     *
     * @return
     */
    List<ArticleVo> articleRandomQuerySix();

    /*
     * 资讯详情相关推荐
     *
     * */
    List<ArticleVo> articleDetaiRecommendlList(TypeVo typeVo);



    /**
     * 根据ID查资讯
     *
     * @param id
     * @return
     */
    ZxArticle getZxArticleBayId(Integer id);

    /**
     * 分类详情页面相关推荐
     *
     * @param tid
     * @return
     */
    List<ZxArticle> zxTypeBy(Integer tid);

    /**
     * 全部资讯(admin)
     *
     * @return
     */
    List<ZxArticle> pageZxList(QueryVO queryVO);

    /**
     * 最新资讯
     *
     * @param pageBean
     * @return
     */
    List<ZxArticle> newestArticle(PageBean pageBean);

    /**
     * 新增资讯
     *
     * @return
     */
    int addZxArticle(ZxUncheck zxUncheck);

    /**
     * 下架，软删除
     *
     * @param zxArticle
     * @return
     */
    int updataStatus(ZxArticle zxArticle);

    /**
     * 根据类型查询资讯
     *
     * @param pageBean
     * @return
     */
    List<ZxArticle> getZxArticleBayType(PageBean pageBean);

    /**
     * 用户删除。真删除
     *
     * @param id
     * @return
     */
    int userDelete(Integer id);


    /**
     * 热门资讯
     *
     * @return
     */

    List<ZxArticle> hotZxArticle(PageBean pageBean);

    /**
     * 大家都在看
     *
     * @return
     */
    List<ZxArticle> everyoneLook();

    /**
     * 专家推荐
     *
     * @return
     */
    List<ZxArticle> expertRecommend();

    /**
     * 查询资讯也类型
     *
     * @return
     */
    List<ThType> queryType();

    /**
     * 阅读数
     *
     * @param id
     * @return
     */
    int read(Integer id);

    /**
     * 收藏数
     *
     * @param id
     * @return
     */
    int collect(Integer id);

    /**
     * 评论数
     *
     * @param id
     * @return
     */
    int comment(Integer id);

    /**
     * 维护搜索数据
     *
     * @return
     */

    int addZxArticleSearch(ZxArticle zxArticle);

    /**
     * 上架资讯分页总数
     *
     * @return
     */
    int count(QueryVO queryVO);

    /**
     * 资讯分页总数
     *
     * @return
     */
    int countSun();

    /**
     * 根据资讯类型查询分页总数
     *
     * @return
     */
    int typeCount(Integer tid);

    /**
     * 类型页面的相关推荐
     *
     * @param tid
     * @return
     */
    List<ZxArticle> zxTypeCorrelation(Integer tid);
    /**
     * 用户收藏资讯
     * @param zxArticle
     * @return
     */
    int addCollect (ZxArticle zxArticle);

    /**
     * 查询收藏表返回 （0可以收藏，1已收藏）
     * @param zxArticle
     * @return
     */
    int queryUserId(ZxArticle zxArticle);

}
